﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Upeu.Venta.Api.Models;
using Upeu.Venta.Data.Business;
using Upeu.Venta.Data.Entities;


namespace Upeu.Venta.Api.Controllers
{
    public class PersonaController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<PersonaModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return PersonaBusiness.GetListByFilter("").Select(
                t => new PersonaModel
                {
                    Id = t.IdPersona,
                    Nombre = t.Nombre,
                    Apell_paterno = t.Apell_paterno,
                    Apell_materno = t.Apell_materno,
                    Dni = t.Dni,
                    Fecha_nacimiento = t.Fecha_nacimiento,
                    Sexo = t.Sexo,
                    Direccion = t.Direccion,
                    Celular = t.Celular,
                });
        }
        // GET api/<controller>/5
        public PersonaModel Get(Guid id)
        {
            Persona t = PersonaBusiness.GetById(id);
            return new PersonaModel
            {
                Id = t.IdPersona,
                Nombre = t.Nombre,
                Apell_paterno = t.Apell_paterno,
                Apell_materno = t.Apell_materno,
                Dni = t.Dni,
                Fecha_nacimiento = t.Fecha_nacimiento,
                Sexo = t.Sexo,
                Direccion = t.Direccion,
                Celular = t.Celular,

            };

        }
        // POST api/<controller>
        public PersonaModel post([FromBody]PersonaModel model)
        {
            Persona t = PersonaBusiness.Create(new Persona
            {
                Nombre = model.Nombre,
                Apell_paterno = model.Apell_paterno,
                Apell_materno = model.Apell_materno,
                Dni = model.Dni,
                Fecha_nacimiento = model.Fecha_nacimiento,
                Sexo = model.Sexo,
                Direccion = model.Direccion,
                Celular = model.Celular,
            });
            return new PersonaModel
            {
                Id = t.IdPersona,
                Nombre = t.Nombre,
                Apell_paterno = t.Apell_paterno,
                Apell_materno = t.Apell_materno,
                Dni = t.Dni,
                Fecha_nacimiento = t.Fecha_nacimiento,
                Sexo = t.Sexo,
                Direccion = t.Direccion,
                Celular = t.Celular,
            };
        }
        // PUT api/<controller>/5
        public PersonaModel Put(Guid id, [FromBody]PersonaModel model)
        {
            Persona t = PersonaBusiness.Update(new Persona
            {

                IdPersona = id,
                Nombre = model.Nombre,
                Apell_paterno = model.Apell_paterno,
                Apell_materno = model.Apell_materno,
                Dni = model.Dni,
                Fecha_nacimiento = model.Fecha_nacimiento,
                Sexo = model.Sexo,
                Direccion = model.Direccion,
                Celular = model.Celular,
            });
            return new PersonaModel
            {
                Id = t.IdPersona,
                Nombre = t.Nombre,
                Apell_paterno = t.Apell_paterno,
                Apell_materno = t.Apell_materno,
                Dni = t.Dni,
                Fecha_nacimiento = t.Fecha_nacimiento,
                Sexo = t.Sexo,
                Direccion = t.Direccion,
                Celular = t.Celular,
            };

        }
        // DELETE api/<controller>/5}
        public void Delete(Guid id)
        {
            PersonaBusiness.Delete(id);
        }

    }
}
